﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BibliotecaProjeto.persistencia;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;

namespace BibliotecaProjeto.tipoPasse
{
    public class DadosTipoPasse : persistencia.ConexaoSqlServer
    {

        ConexaoSqlServer conection = new ConexaoSqlServer();

        #region Atributos
        private string instSql;
        #endregion

        #region Construtores
        /// <summary>
        /// Construtor da Classe
        /// </summary>
        public DadosTipoPasse() { }
        #endregion

        #region Métodos
        #region conexão com select
        public List<TipoPasse> selectTipoPasse()
        {
            List<TipoPasse> retorno = new List<TipoPasse>();
            try
            {
                abrirConexao();
                SqlCommand cmd = new SqlCommand("SELECT codigo,descricao,valor FROM tipoPasse ", conBD);
                SqlDataReader DbReader = cmd.ExecuteReader();

                while (DbReader.Read())
                {
                    TipoPasse tp = new TipoPasse();
                    tp.codigo = DbReader.GetInt32(DbReader.GetOrdinal("codigo"));
                    tp.descricao = DbReader.GetString(DbReader.GetOrdinal("descricao"));
                    tp.valor = DbReader.GetString(DbReader.GetOrdinal("valor"));
                    retorno.Add(tp);
                }

                DbReader.Close();
                cmd.Dispose();
                fecharConexao(); ;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao conectar e selecionar " + ex.Message);
            }
            return retorno;
        }
        #endregion


        public void cadastrar(TipoPasse tipoPasse)
        {
            try
            {
                abrirConexao();
                instSql = "insert into tipoPasse (codigo, descricao,valor) values (" + tipoPasse.codigo + ",'" + tipoPasse.descricao + "'," + tipoPasse.valor + ");";
                abrirConexao();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void atualizar(TipoPasse tipoPasse)
        {
            try
            {
                abrirConexao();
                instSql = "update tipoPasse set descricao = '" + tipoPasse.descricao + "', valor " + tipoPasse.valor + " where codigo = " + tipoPasse.codigo + "";
                abrirConexao();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void remover(TipoPasse tipoPasse)
        {
            try
            {
                abrirConexao();
                instSql = "delete from tipoPasse where codigo = " + tipoPasse.codigo + "";
                fecharConexao(); ;
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }


        //Buscar tipo passe
        public List<TipoPasse> buscar(TipoPasse tp)
        {
            List<TipoPasse> retorno = new List<TipoPasse>();


            try
            {
                abrirConexao();

                SqlCommand cmd = conBD.CreateCommand();

                cmd = new SqlCommand("SELECT tip_codigo,tip_descricao,tip_valor FROM tipoPasse where tip_codigo = @codigo", conBD);

                cmd.Parameters.Add("@codigo", SqlDbType.Int);
                cmd.Prepare();
                cmd.Parameters["@codigo"].Value = tp.codigo;

                SqlDataReader DbReader = cmd.ExecuteReader();

                if (DbReader.HasRows)
                {
                    while (DbReader.Read())
                    {

                        tp.codigo = DbReader.GetInt32(DbReader.GetOrdinal("tip_codigo"));
                        tp.descricao = DbReader.GetString(DbReader.GetOrdinal("tip_descricao"));
                        tp.valor = DbReader.GetString(DbReader.GetOrdinal("tip_valor"));
                        retorno.Add(tp);
                    }
                }
                else
                    MessageBox.Show("Nenhum resultado encontrado");

                DbReader.Close();
                cmd.ExecuteNonQuery();
                fecharConexao();

            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao conectar: " + ex.Message);

            }

            return retorno;

        #endregion

        }
    }
}